package xx.services.page.inter;

import javax.ws.rs.FormParam;
import javax.ws.rs.PathParam;

/**
 * page页面布局管理服务接口
 * 
 * @Path (Constants.RESTFUL_ROOT_PATH + "/page/layout")
 * @author chenxiang 2010-12-19
 */
public interface ILayoutInterface
{
    /**
     * 描述：获取一个布局demo，包含Item<br>
     * 
     * @GET
     * @Path ("/{layout_id}")
     * @param layoutId-@PathParam("layout_id")
     *            布局ID
     * @return 布局实体，包含Item
     * @author chenxiang
     */
    public String get(@PathParam("layout_id")
    long layoutId);

    /**
     * 获取一个布局html代码，包含Item<br>
     * 
     * @GET
     * @Path ("/{layout_id}/html")
     * @param layoutId-@PathParam("layout_id")
     *            布局ID
     * @return 布局Html代码，不是json数据
     * @author chenxiang
     */
    public String getHtml(@PathParam("layout_id")
    long layoutId);

    /**
     * 修改一个布局demo。<br>
     * 
     * @PUT
     * @Path ("/{layout_id}")
     * @param layoutId
     *            -@PathParam("layout_id") 布局ID
     * @param layout
     *            -@FormParam("layout") 布局demo的Json字符串，当layout不为null时，下边的参数无效
     * @param title
     *            -@FormParam("title")标题
     * @param container
     *            -@FormParam("container") 容器
     * @param demo
     *            -@FormParam("demo")
     * @param description
     *            -@FormParam("description")
     * @return 新的布局实体
     * @author chenxiang
     */
    public String update(@PathParam("layout_id")
    long layoutId, @FormParam("layout")
    String layout, @FormParam("title")
    String title, @FormParam("container")
    String container, @FormParam("demo")
    String demo, @FormParam("description")
    String description);

    /**
     * 描述：删除布局demo。<br>
     * 
     * @DELETE
     * @Path ("/{layout_id}")
     * @param layoutId
     *            -@PathParam("layout_id") 布局ID，多个布局ID用“_”隔开
     * @return true-删除成功，string-其他删除失败（string就是失败原因）
     * @author chenxiang
     */
    public String delete(@PathParam("layout_id")
    String layoutId);

    /**
     * 获取指定布局的列item列表
     * 
     * @GET
     * @Path("/{layout_id}/item")
     * @param layoutId
     * @return
     * @author dengjinye 2011-9-18
     */
    public String getItem(long layoutId);
}
